Skip to content

Backports the fix for broadcastAddress interpolation from the v1.x-rc…#864

Merged
robholland merged 1 commit intotemporalio:v0.xfrom
GBlodgett35:greg.blodgett_qoute_ip_for_ipv6
Apr 1, 2026
Merged

Backports the fix for broadcastAddress interpolation from the v1.x-rc…#864
robholland merged 1 commit intotemporalio:v0.xfrom
GBlodgett35:greg.blodgett_qoute_ip_for_ipv6

Conversation

@GBlodgett35
Copy link
Copy Markdown

What was changed

Wraps the environment variable in quotes using the | quote helper. This ensures the IP is treated as a string regardless of its format. This was already done in the -rc branch, so I am backporting this to the stable branch: https://github.com/temporalio/helm-charts/blob/temporal-1.0.0-rc.2/charts/temporal/templates/server-configmap.yaml#L33

Why?

In IPv6 clusters, POD_IP can contain trailing double-colons (e.g., 2600:...::). When dockerize interpolates this into the YAML without quotes, the YAML parser fails with mapping values are not allowed in this context.

2026/03/19 18:25:53 Loading config files=[config/docker.yaml]
Unable to load configuration: config file corrupted: yaml: line 43: mapping values are not allowed in this context.

Checklist

  1. Closes [Bug] Temporal Frontend deployment cannot start in IPv6 clusters #824

  2. How was this tested:

Running:

 helm template . --show-only templates/server-dockerize-configmap.yaml --no-hooks

yields:

global:
      membership:
        name: temporal
        maxJoinDuration: 30s
        broadcastAddress: {{ env "POD_IP" | quote }}

To show the error I have created a local file:

broadcastAddress: {{ .Env.POD_IP }}

And ran a docker image:

docker run --rm -v "$(pwd):/data" -e POD_IP="2600:1f14::" alpine:latest sh -c "
  apk add --no-cache python3 py3-pip &&
  pip3 install PyYAML --break-system-packages &&
  wget https://github.com/jwilder/dockerize/releases/download/v0.6.1/dockerize-linux-amd64-v0.6.1.tar.gz &&
  tar -C /usr/local/bin -xzvf dockerize-linux-amd64-v0.6.1.tar.gz &&

  echo '--- Rendering Template ---' &&
  dockerize -template /data/test.yaml:/data/rendered.yaml &&

  echo '--- Rendered Content ---' &&
  cat /data/rendered.yaml &&

  echo '--- YAML Validation ---' &&
  python3 -c \"import yaml, sys; yaml.safe_load(open('/data/rendered.yaml'))\"
"

Which yields the error:

  File "/usr/lib/python3.12/site-packages/yaml/scanner.py", line 577, in fetch_value
    raise ScannerError(None, None,
yaml.scanner.ScannerError: mapping values are not allowed here

And after changing the file to a slightly different version (Since env is a helm specific tool):

broadcastAddress: "{{ .Env.POD_IP }}"

I now get:

dockerize
--- Rendering Template ---
--- Rendered Content ---
broadcastAddress: "2600:1f14::"
--- YAML Validation ---
  1. Any docs updates needed?
    None.

@GBlodgett35 GBlodgett35 requested a review from a team as a code owner March 19, 2026 19:48
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Mar 19, 2026

CLA assistant check
All committers have signed the CLA.

@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@noah-hanka-veeva
Copy link
Copy Markdown

This is the best change I have ever seen 🤩 @GBlodgett35

@GBlodgett35
Copy link
Copy Markdown
Author

Hey @robholland thanks for approving my MR! What are the next steps to getting this merged and a new stable release of the helm chart deployed?

@robholland robholland merged commit a93b0e6 into temporalio:v0.x Apr 1, 2026
5 checks passed
@GBlodgett35 GBlodgett35 deleted the greg.blodgett_qoute_ip_for_ipv6 branch April 1, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants